home *** CD-ROM | disk | FTP | other *** search
- DEF SEG = &HD000
- CLS
-
- rem ATServer:
- rem 00: AppID
- rem 02: LocalID
- rem 04: Version
- rem 06: Revision
- rem 08: NetworkState
- rem 10: NetServerCall
- rem 11: NetServerReady
- rem 12: NetCommand
- rem 14: NetArg1Offset
- rem 16: NetArg2Offset
- rem 18: NetArg3Offset
- rem 20: NetArg4Offset
- rem 22: NetActual
- rem 24: NetError
- rem 26: ExtendedServerData
-
- %GETDIR=1
- %CHANGEDIR=2
- %OPENFILE=3
- %CLOSEFILE=4
- %READFILE=5
- %WRITEFILE=6
- %SEEKFILE=7
- %DELETEFILE=8
- %RENAMEFILE=9
- %CONNECT=5000
- %DISCONNECT=4000
-
- server=GetJInt(31,4005,7004,33,1)
- IF server=-1 THEN
- PRINT ""
- PRINT "<< Programmabbruch durch Fehler >>"
- PRINT ""
- ELSE
- PRINT "Server gefunden bei Offset";server
-
- REM ===== Aktuelles Verzeichnis listen =====
- CALL CallJInt(server,%GETDIR)
- offset=PEEKI(server+14)
- laenge=PEEKI(server+16)
- FOR i=0 TO laenge
- x=PEEK(server+offset+i)
- IF x=0 THEN PRINT "" ELSE PRINT CHR$(x);
- NEXT
- REM ========================================
-
- REM ===== Verzeichnis wechseln =============
- vn$="DH0:Sprachen/Aztec-C 3.4a/include"
- laenge=LEN(vn$)-1
- FOR i=0 TO laenge
- POKE server+36+i,ASC(MID$(vn$,i+1,1))
- NEXT
- POKEI server+14,36
- POKEI server+16,laenge
- CALL CallJInt(server,%CHANGEDIR)
- REM ========================================
-
-
- CALL FreeJInt(server)
- END IF
- END
-
- FUNCTION GetJInt(intNum,appID,localID,ver,rev) STATIC
- DEF SEG = &HD000
- tabelle&=PEEKI(32)
- serv=PEEKI(tabelle&+(intNum*2))
- IF serv>-1 THEN
- IF (PEEKI(serv+08)<>1) THEN
- PRINT "FEHLER: Amiga-Server von Janus-Interrupt";intNum;"ist nicht fr
- PRINT " Verbindungsaufbau bereit."
- GOTO GetJInt.Fehler
- END IF
- IF (PEEKI(serv+00)<>appID) THEN
- PRINT "FEHLER: Amiga-Server von Janus-Interrupt";intNum;"hat eine falsche"
- PRINT " Applikations-ID."
- GOTO GetJInt.Fehler
- END IF
- IF (PEEKI(serv+02)<>localID) THEN
- PRINT "FEHLER: Amiga-Server von Janus-Interrupt";intNum;"hat eine falsche"
- PRINT " Lokal-ID."
- GOTO GetJInt.Fehler
- END IF
- IF (PEEKI(serv+04)<ver) OR (PEEKI(serv+06)<rev) THEN
- PRINT "FEHLER: Amiga-Server von Janus-Interrupt";intNum;"hat eine ltere"
- PRINT " Version als der PC-Server."
- GOTO GetJInt.Fehler
- END IF
- ELSE
- PRINT "FEHLER: Amiga-Server ist nicht aktiv."
- GOTO GetJInt.Fehler
- END IF
- POKEI serv+08,2
- CALL CallJInt(serv,%CONNECT)
- GOTO GetJInt.Ende
- GetJInt.Fehler:
- IF FreeServ=1 THEN
- POKE serv+09,PEEK(serv+09)-1
- END IF
- serv=-1
- GetJInt.Ende:
- GetJInt=serv
- END FUNCTION
-
- SUB FreeJInt(serv) STATIC
- CALL CallJInt(serv,%DISCONNECT)
- END SUB
-
- SUB CallJInt(serv,funcNum) STATIC
- DEF SEG = &HD000
- POKEI serv+08,1
- POKEI serv+12,funcNum
- POKE serv+11,1
- POKE serv+10,1
- WHILE (PEEK(serv+11)=1) : WEND : REM Auf Besttigung warten
- END SUB